﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            //            一、编写一个控制台应用程序，接受用户输入的两个整数和一个操作符，以实现对两个整数的加、减、乘、除运算，并显示出计算结果。

            //1、创建Calculate积累，其中包含两个整型的protected成员，用以接收用户输入的两个整数。定义一个DisplayResult()虚方法，计算并输出结果。
            //2、定义四个类继承自Calculate类，分别重写DisplayResult()方法，实现两个整数的加、减、乘、除运算，并输出结果。
            //3、根据用户输入的操作符，实例化相应的类，完成运算并输出结果。
            //4、在主类中添加一个方法，形参为父类对象，根据传递实参的类型，调用方法，实现计算和显示结果。
            Console.WriteLine("请输入操作符 +,-,*,/中的一个");
            char s = char.Parse(Console.ReadLine());
            switch (s)
            {
                case '+':
                    Add a = new Add();
                        a.DisplayResult();
                    break;

                case '-':
                    Subtract su = new Subtract();
                    su.DisplayResult();
                    break;
                case '*':
                    Multiply m = new Multiply();
                    m.DisplayResult();
                    break;
                    
                case '/':
                    Remove r = new Remove();
                    r.DisplayResult();
                    break;
                default:
                    break;
            }

        }
    }
    class Calculate
    {
        public int Num1 { get; set; }
        public int Num2 { get; set; }

        public virtual void DisplayResult()
        {
            Console.WriteLine( "请输入第一个数");
            Num1 = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入第二个数");
            Num2 = int.Parse(Console.ReadLine());
        }
    }
    class Add:Calculate
    {
        public override void DisplayResult()
        {
            base.DisplayResult();
            Console.WriteLine("相加得"+(Num1+Num2));
        }
    }
    class Subtract : Calculate //减 
    {
        public override void DisplayResult()
        {
            base.DisplayResult();
            Console.WriteLine("相减得" + (Num1 - Num2));
        }
    }
    class Multiply : Calculate  //乘
    {
        public override void DisplayResult()
        {
            base.DisplayResult();
            Console.WriteLine("相乘得" + (Num1 * Num2));
        }
    }
    class Remove : Calculate//除
    {
        public override void DisplayResult()
        {
            base.DisplayResult();
            Console.WriteLine("相除得" + (Num1 / Num2));
        }
    }
}
